package gc.java2flex.app;

import java.lang.reflect.Field;

public class FlexHelper {

	public static String resolveSimpleAS3Name(Field f) {
		String type = f.getType().getSimpleName();

		if (f.getType().getName().equalsIgnoreCase("java.util.List")) {
			//			type = "mx.collections.ArrayList";
			type = "mx.collections.ArrayCollection";
		}
		if (f.getType().isArray()) {
			type = "Array";
		}

		if (f.getType().getName().equalsIgnoreCase("java.lang.Boolean")
				|| f.getType().getName().equalsIgnoreCase("boolean")) {
			type = "Boolean";
		}

		if (f.getType().getName().equalsIgnoreCase("java.lang.Long") || f.getType().getName().equalsIgnoreCase("long")) {
			type = "Number";
		}
		if (f.getType().getName().equalsIgnoreCase("java.lang.Long") || f.getType().getName().equalsIgnoreCase("long")
				|| f.getType().getSimpleName().equalsIgnoreCase("bigdecimal")) {
			type = "Number";
		}

		if (f.getType().getName().equalsIgnoreCase("java.lang.Short")
				|| f.getType().getName().equalsIgnoreCase("short")) {
			type = "int";
		}

		if (f.getType().getName().equalsIgnoreCase("java.lang.Byte") || f.getType().getName().equalsIgnoreCase("byte")) {
			type = "int";
		}

		if (f.getType().getSimpleName().equalsIgnoreCase("char")) {
			type = "String";
		}
		if (f.getType().getName().equalsIgnoreCase("java.lang.Double")
				|| f.getType().getName().equalsIgnoreCase("double")) {
			type = "Number";
		}
		if (f.getType().getName().equalsIgnoreCase("java.lang.Character")
				|| f.getType().getName().equalsIgnoreCase("char")) {
			type = "String";
		}
		if (f.getType().getName().equalsIgnoreCase("java.lang.Float")
				|| f.getType().getName().equalsIgnoreCase("float")) {
			type = "Number";
		}
		if (f.getType().getName().equalsIgnoreCase("java.lang.Date") || f.getType().getName().equalsIgnoreCase("date")) {
			type = "Date";
		}

		if (f.getType().getName().equalsIgnoreCase("java.lang.Calendar")) {
			type = "Date";
		}

		if (f.getType().getSimpleName().equalsIgnoreCase("Integer")) {
			type = "int";
		}

		if (f.getType().getSimpleName().equals("double")) {
			type = "Number";
		} else if (f.getType().getSimpleName().equals("char")) {
			type = "String";
		}

		return type;
	}

}
